/*
 * 文件名称：AppTimer.h
 * 文件描述：提供消息队列存储，实现消息缓存功能
 * 作者信息：Satan-Emperor
 * 版本信息：V1.0.0
 * 修改历史：2014-04-22
 */

#ifndef _MSGQUEUE_H_
#define _MSGQUEUE_H_

#include <queue>
#include <pthread.h>

/* 消息队列类 */
class MsgQueue
{
public:
    MsgQueue();
    virtual ~MsgQueue();

public:
    int pushMsg(char *pMsgBuffAddr);	/* 压入消息到消息队列 */
    int getMsg(char **ppMsgBuff);		/* 从消息队列中获取消息 */
    int clearMsgQueue(void);			/* 清空消息队列中的消息 */
    int getSize(void);					/* 获取消息队列中消息个数 */

protected:
    int popMsg(char **ppMsgBuffAddr);	/* 从消息队列中弹出消息 */

private:
    std::queue<char *> mMsgQueue;		/* 消息队列，消息的形式为指针 */
    pthread_mutex_t mMsgQueueMutex;		/* 消息队列访问互斥锁 */
};

#endif /* _MSGQUEUE_H_ */
